﻿//-----------------------------------------------------------------------
// <copyright file="ConflictResolutionStrategy.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the ConflictResolutionStrategy class.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Engine.ConflictResolution
{
    /*  The rules Engine implements a similar set of built-in
     *  conflict resolution strategies to OPS5/CLIPS.
     */

    /// <summary>
    /// Abstract base class for conflict resolution strategies.
    /// </summary>
    public abstract class ConflictResolutionStrategy
    {
        /// <summary>
        /// Factory method returns a new agenda.
        /// </summary>
        /// <returns>A new agenda.</returns>
        public abstract Agenda NewAgenda();

        /// <summary>
        /// Factory method creates a new agenda list.
        /// </summary>
        /// <returns>A new agenda list.</returns>
        public abstract IAgendaList CreateAgendaList();
    }
}
